home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / netmail / rnr214.zip / RNR.DOC < prev    next >
Text File  |  1996-04-09  |  59KB  |  1,495 lines

  1. [ NOTE: trademarks may be used in this document.  use of trademarks does not
  2.   indicate any endorsement of products or corporations, any disprespect for
  3.   trademark law, any contesting of the validity of the trademarks, etc. etc. ]
  4.  
  5.  
  6. rnr:  (formerly `rusnews')
  7. threaded newsreader for ms-dos waffle, uupc, and uufree.  kill/antikill
  8.   files, crosspost filtering, console/modem use.
  9.  
  10.  
  11. NON-BACKWARDS-COMPATIBLE NOTE:
  12.   v1.28 has changed the meaning of the -p/--port parameter, so that
  13.   it is 1-based instead of 0-based.  this means that externs and
  14.   batch files will have to be changed for modem use, and also that
  15.   waffle's `%d' can be used to indicate the device.
  16.  
  17. NON-BACKWARDS-COMPATIBLE NOTE:
  18.   v1.28 handles --trusted before --port correctly, whereas before using
  19.   --port after --trusted would not work.  if you were depending on this
  20.   broken behavior, you will need to modify your batch files.
  21.  
  22.  
  23.  
  24. Primary Author
  25. -=------------
  26.  
  27. Russell_Schulz@locutus.ofB.ORG (960409)
  28.  
  29.  
  30. Credits
  31. -=-----
  32.  
  33. Kim Storm - author of `nn' - a much more powerful Unix newsreader
  34. Bill Fenner - documenter of waffle 1.65's password file
  35. Rhys Weatherley - suggester of hashing to improve threading in limited memory
  36. Henrik Storner - charset and all of the UUPC work and finder of various errors
  37. Thomas Wagner - author of EXEC.PAS and giver of memory
  38.  
  39.  
  40. Version for This Document
  41. -=-----------------------
  42.  
  43. 2.14 (this information can be found in the start of rnrglob.pas, and
  44.   rnr will spit it out upon running)
  45.  
  46.  
  47. Companion Software
  48. -=----------------
  49.  
  50. trived.exe - trivial editor.  tiny vi-subset, somewhat minimal screen
  51.   updating, can be used on the console without ANSI.SYS present, takes
  52.   about 20k
  53.  
  54. if anyone has an editor which has these properties:
  55.   - small memory requirements (no longer essential with --swap !)
  56.   - runs on console (without ANSI.SYS) and through a fossil driver
  57.   - secure (no accessing unallowed files)
  58.  
  59. please let me know.
  60.  
  61.  
  62. vspell.exe - visual speller.  not like unix vspell at all yet.  sorry.
  63.   (not released -- it's got some quite silly limitations)
  64.  
  65.  
  66. makenews.exe - makes a newsgroup out of whatever you've got laying
  67.   around, including exploded MMDF mailboxes or waf164 mail.
  68.  
  69.  
  70. makenov.exe - makes News OVerview databases for greatly increased
  71.   speed when reading news.
  72.  
  73.  
  74. Limitations
  75. -=---------
  76.  
  77. quite a few, compared to the real nn--listed in start of rnr.pas
  78.  
  79.  
  80.  
  81. Where to Find New Versions
  82. -=------------------------
  83.  
  84. minor updates end up in ftp.halcyon.com:/pub/waffle/news, thanks to
  85. the generosity of Ralph Sims.  updates no longer go on simtel20 due
  86. to their policy refusing it (because I will not put my home address
  87. or phone number in the documentation -- they call this `anonymous').
  88.  
  89.  
  90. Intended Users
  91. -=------------
  92.  
  93. people who run ms-dos waffle, uupc, or uufree at the console (not
  94. through a dialup line) who have total control to the computer anyway.
  95. rnr has the capability to allow editing of postings in place,
  96. unlimited (but slightly checked) modification of headers, and shelling
  97. to a command line (for trusted users).
  98.  
  99. as of v2.00 rnr can be run over the phone lines.  when run over the
  100. phone lines, it defaults to a non-trusted mode (which can be overridden
  101. by the command line (using different extern entries)) which does not
  102. allow users to do some of the above things.
  103.  
  104. source code (compilable with Borland's Turbo Pascal 4) should have been
  105. included, since that's the way I sent it out -- unless you got it is
  106. part of the uufree package, which has a binary-only distribution due to
  107. size constraints.  in that case, source should still be available from
  108. the full package.
  109.  
  110.  
  111. How To Set It Up for Use With Waffle
  112. -=----------------------------------
  113.  
  114. possibly, you may not have to do a thing other than copying the rnr.exe
  115. file to a directory listed in your PATH environment variable (or even in
  116. the current directory, due to a bad design decision in ms-dos and
  117. compatibles).  if you want, you can set the environment variables
  118. NET_NAME or USER or LOGNAME or USERNAME to be the waffle user id, or
  119. just pass it in on the command line.  if your editor is not vi, set the
  120. environment variable EDITOR (or VISUAL).  if your vspeller is not
  121. vspell, set the environment variable SPELL (or VSPELL).
  122.  
  123. example: waffle id chris, editor is emacs, vspeller is spellchk:
  124.  
  125. set USER=chris
  126. set EDITOR=c:\tools\emacs
  127. set VSPELL=c:\tools\spellchk
  128.  
  129. in both cases above, an extension (either `.com' or `.exe') could have
  130. been supplied, but was not required.
  131.  
  132. also, if c:\tools is on the PATH, those last lines could have been
  133.  
  134. set EDITOR=emacs
  135. set VSPELL=spellchk
  136.  
  137. as rnr will search the path for these programs.
  138.  
  139. for waffle 1.65 users, set the WAFFLEVERSION environment variable (or
  140. set the version: static file entry to `version: 1.65', or use
  141. -v/--interface-version %V in your extern file, or hard-code the waffle
  142. version in the batch file which calls rnr).
  143.  
  144. if you use a version higher than 1.65, rnr will use the same
  145. password-file-access functions as it would for 1.65.
  146.  
  147. example: waffle version is 1.65:
  148.  
  149. set WAFFLEVERSION=1.65
  150.  
  151. NET_NAME or USER or LOGNAME or USERNAME, EDITOR, SPELL, FULLNAME, and
  152. WAFFLEVERSION can be passed in as command-line paramaters.
  153. WAFFLEVERSION can also be replaced by a version: entry in your static
  154. file.  FULLNAME should no longer be required with any 1.64 or 1.65 (or
  155. higher, if the password file format doesn't change again) system--rnr
  156. should be able to find the full name from the password file.
  157.  
  158. if you use waffle 1.65 and the RUN.BAT file, you might want to utilize
  159. the Chrome feature (hit `C' at `waiting for call' line)--just have that
  160. part of the batch file (the errorcode 120 part) run `rnr' with your
  161. favorite options.
  162.  
  163. you may also want to create /waffle/menus/rnr (or whatever you call
  164. your extern entry) with a quick introduction to the keystrokes--see the
  165. waffle documentation about how to do this.
  166.  
  167.  
  168. Minimal Instructions on How To Read News With It (Console)
  169. -=--------------------------------------------------------
  170.  
  171. run it.
  172.  
  173. C:\>rnr <-'  (where <-' is the Enter key)
  174.  
  175. if you haven't set any of the NET_NAME or USER or LOGNAME or USERNAME
  176. environment variables, it will need a command-line parameter--your
  177. waffle user id
  178.  
  179. C:\>rnr -u chris <-'          or  C:\>rnr --user chris <-'
  180.  
  181. if you haven't set the version: entry in your static file, and you're not
  182. running Waffle 1.64, you might need to indicate to rnr that its default
  183. version assumption won't work:
  184.  
  185. C:\>rnr -u chris -v 1.65 <-'  or
  186.                C:\>rnr --user chris --interface-version 1.65 <-'
  187.  
  188. it will then back up your join file (to join.bak) and kill file (to
  189. kill.bak) and antikill file (to antikill.bak) if they exist.  then, for
  190. each group in your join file it will find the postings you have not yet
  191. read and sort them into threads (based on the Subject: header) and then
  192. sort the threads as best it can (based on the References: header).  for
  193. each group with unread postings, a listing of From: and Subject: line
  194. data will be displayed.  hit ? for help at this point.  usually, you
  195. just hit unshifted letter keys or number keys to select articles, and
  196. space to go to the next selection screen.  after the last selection
  197. screen, each selected article is brought up for browsing.  hit ? for
  198. help at this point, too--different functions are available.
  199.  
  200. while it is reading in unread postings, it will continually list the
  201. article numbers followed by a space.  (if an article is killed, the
  202. article number will be immediately followed by a `k'; if malformed or
  203. empty, an `e'; and if it was seeable from a group (other than *.answers
  204. or news.announce.*) located before the current one in your join file, an
  205. `s'. if an article was antikilled, it will be followed by an `a'.
  206. if you are searching, and an article did not have the string you
  207. specified, it will be followed by an `n', unless --highlight-search-hits
  208. was selected.)
  209.  
  210. while this is going on, you can hit `Q' to quit immediately, `N' to
  211. start on the next group immediately, or `O' to read only the articles
  212. which have already been searched.  Note that you cannot accidentally
  213. catch up on a group by hitting `X' here, and that hitting `P' here to go
  214. to the previous group doesn't work until all the files are searched in
  215. (unless you jump to the selection screen with `O').  you can also hit
  216. `!' to escape to a shell (if so allowed).  the article numbers (and
  217. letters) will overwrite each other on the same line unless you set the
  218. wandering-numbers option (which is probably only useful for testing
  219. kill files).
  220.  
  221.  
  222. The Selection Screen
  223. -=------------------
  224.  
  225. ,------------------------ selection letter (hit this to select for reading)
  226. | ,---------------------- name and/or address of person who posted
  227. | |                 ,---- size in kilobytes (roughly)
  228. | |                 | ,-- subject
  229. | |                 | |
  230. v v                 v v
  231. a Alpha Centauri   12 Nectar of the Dogs
  232. b Beta Tester       3 >
  233. c Gamma Rays        8 >>
  234. d Delta Changes    15 >Who is Spiderman's Landlord?
  235. e Epsilon Squared   2 >>
  236. f Zeta Noah         4 >>
  237. g Eta Pizza         3 -
  238. h Theta Know       22 >>>>>>>
  239.  
  240. Alpha Centauri posted about Nectar -- this was a new thread, with no
  241. references to earlier posts (unless Alpha's software is broken).  Beta
  242. followed up, and Gamma followed up to Beta's comments.
  243.  
  244. someone (we don't know who) posted about Spiderman.  Delta followed
  245. up, and both Epsilon and Zeta commented on Delta's post (or possibly
  246. someone else who commented on the original Spiderman comment itself).
  247. Eta seems to have broken software, because there was no References:
  248. header at all.  it's where it is, and not at the beginning, because of
  249. its Date: header -- it was late.  (this might be due to time zones,
  250. which rnr doesn't really pay any attention to yet).  and Theta
  251. either doesn't know how to trim quotes, or likes to type a _lot_.  and
  252. the Spiderman discussion seems to have been going on a long time,
  253. because the References: chain is quite long.
  254.  
  255.  
  256. The Browsing Screen
  257. -=-----------------
  258.  
  259. these functions are available from the browsing screen:
  260.  
  261.  ?     help (F1 on console)
  262.  n     next article
  263.  p     previous article
  264.  a     ahead an article, selected or not
  265.  b     back an article, selected or not
  266.  u     up a half-page
  267.  <     up a half-page (PgUp on console)
  268.  ^B    up a half-page
  269.  ^     top of article (Home on console)
  270.  $     bottom of article (End on console)
  271.  CR    down a line
  272.  space down a page
  273.  >     down a page (PgDn on console)
  274.  ^F    down a page
  275.  d     down a half-page
  276.  w     write to disk (all headers, will be only some headers someday)
  277.  s     save to disk (all headers)
  278.  r     reply to article in private mail
  279.  m     mail article in private mail
  280.  C     copy article to folder
  281.  M     move article to folder (only in mail pseudo-groups)
  282.  f     followup to article in public news
  283.  k     kill article's subject or author for later filtering
  284.  K     antikill article's subject or author for later automatic selecting
  285.  e     edit article on disk
  286.  D     decode rot13 encoding
  287.  c     compress multiple spaces into one
  288.  h     toggle display of absolutely all headers
  289.  ^L    refresh screen
  290.  ^R    reread kill/antikill files from disk
  291.  Q     quit (no update)
  292.  N     next group (no update)
  293.  !     shell
  294.  =     back to selection screen
  295.  TAB   skip this subject
  296.  /     search
  297.  .     repeat search
  298.  :     enter command--`:mail', `:post', `:follow', `:cancel', `:quit', etc.
  299.  A     add alias for author
  300.  ^G    in a digest, go to the next sub-article
  301.  v     run command from --view-command
  302.  x     run command from --extract-command
  303.  
  304.  
  305. Where to Type in a Message
  306. -=------------------------
  307.  
  308. rnr allows you to edit all your headers.  the headers _need_ to be
  309. separated from the text by an empty line.  (this line must be _empty_.
  310. it must _not_ have a space.  it must _not_ have a tab.  _empty_.)  to
  311. prevent people from accidentally merging their body text in with their
  312. header text, rnr inserts the empty line and adds a line like this:
  313.  
  314.   (begin your PUBLIC post at this line, but no sooner)
  315.   (begin your PRIVATE mail at this line, but no sooner)
  316.  
  317. overwrite that line -- it must become the first line of your message
  318. past the headers and past _the empty line_.
  319.  
  320. rnr will not delete the line for you.  rnr also might not warn
  321. you that something is wrong if you delete the empty line -- so be
  322. careful not to do it, if you want your message to propogate.
  323.  
  324. if you have a signature file, rnr will have include it at the bottom
  325. of your message after a line consisting of `dash dash space' (an
  326. unfortunate delimiter to which we are bound by ancient tradition).
  327. do not type your message below that line, otherwise it is more likely
  328. to be ignored.
  329.  
  330.  
  331. Mail Address Alias Expansion
  332. -=--------------------------
  333.  
  334. rnr looks at user/*/forward files, waffle/system/aliases, and the
  335. aliases file in the user's home directory to expand mail which might
  336. be an alias (without a `@' or `!' char in it).
  337.  
  338.  
  339. Configuration Options (Command Line/Rc Files)
  340. -=-------------------------------------------
  341.  
  342. any option's value which is just `-' is changed to an empty string
  343.  
  344. many of these can now be handle via --set or :set
  345.  
  346. -u --user      set the username                 -u %A
  347.   if not present, it will use NET_NAME or USER or LOGNAME or USERNAME
  348.   environment variables
  349.  
  350. -n --newsgroup jump directly to a newsgroup     -n comp.os.msdos.mail-news
  351.   if not present, or invalid, it will just go through the join file.  the
  352.   newsgroup can be abbreviated just as for the G key (eg. `c.o.m.ma', `waf')
  353.  
  354.   (see discussion at end of --goto section)
  355.  
  356. -g --goto      goto a newsgroup (parameter optional if last on line)
  357.   allows you to goto a group like -n/--newsgroup, but prompts for how
  358.   to start reading--j to jump in where you were last time, a for all,
  359.   or {1}-{9} to for the last 1 through 9 pages (although if some of
  360.   the articles are killed, or you hadn't been caught up in the group,
  361.   you might not get exactly that number of pages).
  362.  
  363.   additionally, you can select toggles -- {+} to search the articles
  364.   without filtering (no `k', `s', or `e'), {h} to search headers, {b}
  365.   to search bodies, {w} to search whole articles, {s} to search subjects
  366.   only, {n} to search names only, {e} to search either subjects or names.
  367.   {-} will only remember articles which were antikilled.
  368.  
  369.   if you select {f}, for frequently asked questions, any article
  370.   crossposted to news.answers, or which has 'FAQ' or 'Frequently
  371.   Asked Q' in the Subject: line will be presented.  right now, there
  372.   is no way to restrict this to a recent set -- if you want to look
  373.   at all news.answers crossposts in the past 4 pages, use `+h4' and
  374.   for a search text use `news.answers'.
  375.  
  376.   for -n and -g, as of v1.28 you can also select a directory (if trusted)
  377.   for reading.  this directory must have filenames of positive integers,
  378.   just like any newsgroup directory.  with waffle 1.66's new
  379.   `outform: hierarchy' static parameter, this means you can scan your
  380.   outgoing mail archives just like you can any newsgroup -- on my
  381.   machine, I do a {G}oto `j:/outbox/halcyon' to read some or all mail
  382.   I have sent to halcyon (the same filtering options are available).
  383.  
  384. -p --port      specify a fossil port            -p 1 (1=com1, 2=com2)
  385.   if not present, will use the console (except in rnr0)
  386.  
  387.   (NOTE: before v1.28, these were 0=com1, 1=com2)
  388.  
  389.    --console   use console i/o, not fossil      --console
  390.   necessary to use small-memory version (rnr0) on console
  391.   (NOTE: this option is obsolete and will likely disappear altogether)
  392.  
  393. -l --lines     indicate number of lines to use  -l 50
  394.   defaults to 25 on the console, 24 otherwise (see --detect-video)
  395.  
  396. -c --columns   indicate number of columns       -c 132
  397.   defaults to 80.  quoted postings will still be wrapped shorter than
  398.   80 columns for posting followups and replies (see --detect-video)
  399.  
  400. -f --fullname  set the full name                -f Chris_Doe
  401.   underscores will be changed to spaces; should not be necessary for
  402.   waffle 1.64 or 1.65
  403.  
  404. -s --forum-set-list  specify the forum set            -s local,usenet,mail
  405.   underscores and commas will change to spaces; if not present, will use
  406.   all sets in the forums: static entry
  407.  
  408. -t --trusted   allow a remote user to edit articles, change From: lines, etc.
  409.   a console user will be allowed to do anything.  a dialin user will only be
  410.   allowed to do everything if this parameter is given.
  411.  
  412. -i --interface interface standard for other files           -i waffle
  413.   supported values:  `waffle', `uupc', `uufree'
  414.  
  415. -v --interface-version   specify interface version in use   -v %V
  416.   if not present, will use WAFFLEVERSION; if still not present, will use
  417.   version: static entry; if still not present, will use 1.64
  418.  
  419. -m --minutes   specify number of minutes to run -m %O
  420.   if not present, will run a long, long time for console/trusted users, and
  421.   sixty minutes otherwise.  this is done only to prevent a bbs from being
  422.   locked up due to one user's terminal hanging.  if your editor does not
  423.   support timeouts, you may want to run rnr under a shell that will
  424.   watch for timeouts for both rnr and the editor (and vspeller).
  425.  
  426. -r --rcfile    filename for further options     -r w:/waffle/lib/rnr.rc
  427.   will read the named file, and use each line (except those that begin with
  428.   `#') as if it were on the command line.  this option does not nest (to
  429.   avoid infinite loops).  these options override any given previously
  430.   (which should probably be changed somehow)
  431.  
  432.   eg.
  433.     set shadow 1
  434.     set editor w:/waffle/bin/trived.exe
  435.     set vspeller w:/waffle/bin/misspell.exe
  436.     set vspeller-options -dict_w:/waffle/lib/local.dic
  437.  
  438.   my personal rc file recommendations (once everything is working) include:
  439.  
  440.     set make-space-like-x
  441.     set hide-these-headers :Path:Sender:NNTP-Posting-Host:Originator:
  442.     set highlight-these-headers :From:Subject:X-Newsreader:Date:
  443.     set antikill-references
  444.     set auto-antikill
  445.     set warn-auto-antikill
  446.     set edit-after-vspell
  447.     set substring-subject-kill
  448.     set substring-from-kill
  449.     set substring-subject-antikill
  450.     set substring-from-antikill
  451.     set case-insensitive-antikill
  452.     set quiet
  453.     set find-quote-char
  454.  
  455.   all of these listed in this very last example could, instead, be put
  456.   in a user's rnr.rc in their home directory if they so wished, so
  457.   you might want to leave it up to the user.
  458.  
  459.   a non-trusted user's rnr.rc can not use any restricted options, for
  460.   security's sake.  the file used with -r/--rcfile _can_ use any and
  461.   all options, since it is under the system administrator's control.
  462.  
  463.   any restricted option read in a user's rnr.rc file will be ignored.
  464.  
  465. --ignore-environment to not use environment variables (EDITOR, VISUAL,
  466.   SPELL, VSPELL, NET_NAME, USER, LOGNAME, USERNAME, FULLNAME,
  467.   WAFFLEVERSION, TZ)
  468.  
  469. --mail-prefix private.mail -- would treat all groups beginning with
  470.   private.mail.{userid} as mail--no kill `k', antikill `a', seen `s',
  471.   or empty `e' modifiers.  to use a group (mail folder) of the form
  472.   private.mail.{userid}.{folder}, it does not have to be in your
  473.   forum definitions file.  you can also specify this as `={folder}'
  474.   (or just `=' for private.mail.{userid})
  475.  
  476.   mail is private.  news is not.  if users can edit their own JOIN
  477.   files, do _not_ use this feature yet.  (user chris could subscribe
  478.   to the group private.mail.pat, for instance!)  if this is a big
  479.   concern for anyone (ie. if people are using this specific feature
  480.   on non-trusted sites) I may well fix it.  if not, I may well not.
  481.  
  482.   you might want to just leave `mail' as a separate forums definition
  483.   file (with, say, `local' and `usenet') and avoid running with
  484.   `--forum-set mail' for non-trusted users, so they can't get to _any_
  485.   of the mail groups.  this also keeps rnews from allowing anyone to
  486.   flood your mailbox through news this way.
  487.  
  488. --ignore-mouse  even if it looks like it's there, ignore it.  this
  489.   may be necessary with older hardware and/or software.
  490.  
  491. --map {where} {old} {new}  see the next section for full details
  492.  
  493. --set name=value   replaces many of the individual options
  494.   (e.g., --set find-quote-char, --set quote-color=11)
  495.  
  496. --unset name   undoes the effect of a `set'
  497.  
  498. --netware   get userid from Novell Netware(TM)
  499.  
  500.  
  501. some old options are now handle via `set'
  502.  
  503. for -e, see --editor
  504. for -o, see --editor-options
  505. for -d, see --shadow
  506.  
  507.   detect-video     editor     vspeller     editor-options
  508.   vspeller-options     shadow     make-space-like-x
  509.   subjects-case-insensitive     subject-length     squash-spaces
  510.   equate-truncated     hide-these-headers
  511.   show-only-these-headers     highlight-these-headers
  512.   no-mail-from     no-mail-headers     no-news-headers
  513.   wandering-numbers     antikill-references
  514.   show-subject-kills     show-from-kills
  515.   show-subject-antikills     show-from-antikills     show-kills
  516.   show-antikills     auto-antikill     warn-auto-antikill
  517.   edit-after-vspell     case-insensitive-kill
  518.   case-insensitive-antikill     substring-subject-kill
  519.   substring-from-kill     substring-subject-antikill
  520.   substring-from-antikill     quiet     confirm-quit
  521.   confirm-next-group     confirm-next-article
  522.   missing-subject-is-ok     tilde-home
  523.   clear-screen-between-groups     antikill-even-killed
  524.   use-bios-for-screen     hide-form-feeds     path-userid
  525.   from-userid     custom-static     halt-on-unknown-groups
  526.   mouse-chars-header     just-dots     no-filemode
  527.   quit-message     output-separator     news-cmd-line
  528.   mail-cmd-line     mail-agent     outgoing-mail     outgoing-news
  529.   highlight-search-hits     colors     quote-color
  530.   local-charset     rmail-single     idle     swap
  531.   article-filename-pattern     overview-base-name     from-width
  532.   size-width     enter-group-command     dots-on-reset
  533.   view-command     extract-command     encode-command     crlf
  534.   find-quote-char     truncate-id-length     layout
  535.   alternate-color     date-color     mail-from     news-from
  536.   reply-to     mail-marker-line     news-marker-line     debug
  537.   mail-date-format     news-date-format     regex
  538.   quote-with-space     find-existing-file-command
  539.   find-file-command     indicate-posted-mail-in-body
  540.  
  541.  
  542. Set Configuration Options
  543. -=-----------------------
  544.  
  545. many of these can be affected via `--option', but `set option' is
  546. now the preferred method
  547.  
  548. editor    set the editor                   set editor d:/path/editor[.exe]
  549.   if not present, will use environment variables VISUAL then EDITOR; if
  550.   none present, vi is used.  full drive and path information not
  551.   required if it will be found in one of the directories listed in the
  552.   PATH environment variable.
  553.  
  554. vspeller   set the vspeller                set vspeller spellchk[.exe]
  555.   used for {v}spell spell-checking articles and mail.  if not present,
  556.   will use environment variables VSPELL then SPELL; if none present,
  557.   vspell is used.  full drive and path information not required if
  558.   it will be found in one of the directories listed in the PATH
  559.   environment variable
  560.  
  561. editor-options   editor options         set editor-options !_w:\user\%A
  562.   underscores will change to spaces; do not include filename, which
  563.   will be put at the end of the argument list
  564.  
  565. vspeller-options vspeller options       set vspeller-options -u %A
  566.   underscores will change to spaces; do not include filename, which
  567.   will be put at the end of the argument list
  568.  
  569. shadow    shadow all comm output to screen -d 1
  570.   if present, will write all comm output to the screen as well--and it
  571.   won't be pretty.  used for testing when I can't be there to coax it.
  572.   the integer is how many milliseconds to delay (based on Turbo Pascal's
  573.   delay() routine) every once in a while and must be >0 to take effect
  574.  
  575. subjects-case-insensitive for subject sorting
  576.  
  577. subject-length for subject sorting (default 50)
  578.  
  579. squash-spaces for ignoring spaces when grouping threads
  580.   (NOTE: there are known problems with this code at this time, sorry)
  581.  
  582. equate-truncated min-length for treating truncated subjects as equal
  583.   (min-length is probably most useful at 20, or lower with squash-spaces)
  584.   (NOTE: there are known problems with this code at this time, sorry)
  585.  
  586. make-space-like-x  makes space act like X when you've got at least one
  587.   article selected, which acts a lot more like nn does (because nn doesn't
  588.   use the join file format).  this could NOT easily be implemented with
  589.   the --map construct, since it only happens when there's at least one
  590.   selected article -- if you hit space without having selected anything,
  591.   it doesn't mark the whole group as read on you.
  592.  
  593. hide-these-headers to hide headers (except with v)
  594.   (see later HEADER-LIST-SYNTAX-NOTE)
  595.  
  596. show-only-these-headers to show only certain headers (except with v)
  597.   (see later HEADER-LIST-SYNTAX-NOTE)
  598.  
  599. highlight-these-headers to highlight certain headers if they're there
  600.   (default `:From:Subject:')  (see later HEADER-LIST-SYNTAX-NOTE)
  601.  
  602. no-mail-from   avoid generating From_ line for some mailers
  603.  
  604. no-mail-headers to avoid generating certain headers for some mailers
  605.   (uupc users may want to use `:Message-ID:Received:').  this will not
  606.   affect news sent as mail (with CC: poster, or moderated groups)
  607.   (see later HEADER-LIST-SYNTAX-NOTE)
  608.  
  609. no-news-headers to avoid generating certain headers for some posters
  610.   (uupc users may want to use `:Message-ID:Path:')
  611.   (see later HEADER-LIST-SYNTAX-NOTE)
  612.  
  613. HEADER-LIST-SYNTAX-NOTE: for these last five options that name headers,
  614.   the format is always :Header1:Header2:...:HeaderN:--no spaces, and
  615.   a leading colon.  see the examples given under `my personal rc file
  616.   recommendations'
  617.  
  618. wandering-numbers to have the article numbers wander everywhere
  619.   this is probably useful only for testing or people who are intimately
  620.   knowledgeable and curious about their news setup
  621.  
  622. antikill-references to antikill anything that has your node in the
  623.   References: line
  624.  
  625. show-subject-kills to show what's killed on entering a group
  626.  
  627. show-from-kills to show what's killed on entering a group
  628.  
  629. show-subject-antikills to show what's antikilled on entering a group
  630.  
  631. show-from-antikills to show what's antikilled on entering a group
  632.  
  633. show-kills to show what's killed on entering a group
  634.  
  635. show-antikills to show what's antikilled on entering a group
  636.  
  637. auto-antikill to automatically antikill on entering a group
  638.  
  639. warn-auto-antikill to warn if any articles were antikilled
  640.  
  641. edit-after-vspell to automatically edit after every vspell (which is handy
  642.   for non-editing piece-of-junk vspellers like the one I threw together)
  643.  
  644. case-insensitive-kill to ignore case when killing
  645.  
  646. case-insensitive-antikill to ignore case when antikilling
  647.  
  648. substring-subject-kill to not require exact matches on killing
  649.  
  650. substring-from-kill to not require exact matches on killing
  651.  
  652. substring-subject-antikill to not require exact matches on antikilling
  653.  
  654. substring-from-antikill to not require exact matches on antikilling
  655.  
  656. quiet to cut down on the informational messages
  657.  
  658. confirm-quit to ask for confirmation before using Q (while browsing or
  659.   selecting articles) since these don't update the join file (and it can
  660.   be a pain to quit out in the middle of selecting 20 pages of articles)
  661.  
  662. confirm-next-group to ask for confirmation before using N (while browsing)
  663.   since this doesn't update the join file (formerly called confirm-next)
  664.  
  665. confirm-next-article to ask for confirmation before scrolling to the
  666.   next message when browsing
  667.  
  668. missing-subject-is-ok to not trash nonconformant articles with no Subject:
  669.   line (in the case of mailing list gateways, say).  rnr will fake
  670.   a Subject: line by itself if there's a From: line and a Newsgroups:
  671.   line in any case -- and will always fake a Subject: line (if required)
  672.   in a mail group, since Subject: is not a required mail header.
  673.  
  674. tilde-home to change ~/ to the user's home directory when writing files
  675.   (only available to trusted users anyway -- non-trusted users can _only_
  676.   write to files in their home directory) (defaults to true)
  677.  
  678. clear-screen-between-groups for slow scrolling systems
  679.  
  680. antikill-even-killed to make antikill take precedence over kill
  681.  
  682. detect-video to auto-detect number of lines and columns (console only)
  683.   (defaults to true)
  684.  
  685. use-bios-for-screen  instead of direct video memory manipulation
  686.  
  687. hide-form-feeds  useful for dialin users, where showing the ^L would
  688.   clear the screen (it will still be used as a page break)
  689.  
  690. path-userid id   the id to show in the Path: header--defaults to
  691.   current user id (used to default to `news')
  692.  
  693. from-userid id   the id to show in the From_ header--defaults to
  694.   current user id
  695.  
  696. custom-static filename   a filename that is consulted before the
  697.   system-wide static file.  this is only to be used in very weird
  698.   setups--do NOT give this to any user unless that user is _very_
  699.   trusted, or the file is not editable by them, as anything in the
  700.   main static file can be overridden with this file.  you may want
  701.   to use something like `w:/waffle/statics/%A'.  with the new
  702.   --mail-from, --news-from, and --reply-to, this option is needed
  703.   much less than before.
  704.  
  705. halt-on-unknown-groups  now defaults to just skipping over them
  706.   (this is one way to have rnr only bring up very important
  707.   groups when you're in a hurry--run it with something like
  708.   `--forum-set-list imp' where imp is a copy of your usenet file,
  709.   but with non-important groups deleted.)
  710.  
  711. mouse-chars-header {chars}   probably only usable from the rc file,
  712.   since you can't escape < or > with command.com to use it on the
  713.   command line.  defaults to  "< > ^ $ * - + Q N @ ~ Z G '" but you
  714.   can get rid of < and > if you wish, or include X if you want to live
  715.   dangerously.
  716.  
  717. just-dots   just prints a `.' for every article header searched,
  718.   not the whole article number (saves time over slow links)
  719.  
  720. no-filemode   prevents changes to filemode variable which can cause
  721.   problems on ancient versions of dos.  it is automatically selected
  722.   if the integer part of the dos version is below 3.  (i.e., DOS v2.*)
  723.  
  724. quit-message message_with_no_spaces   prints this message just
  725.   before exiting -- you may want to use `Returning_to_waffle...'
  726.   so that no one hangs up waiting for waffle to re-load.
  727.  
  728. output-separator MessageBreak   writes this line between articles
  729.   written to the same file.  defaults to `---cut-here---'.
  730.  
  731. news-cmd-line command  a command to post news, or `(standard)' to
  732.   use whatever is in the waffle/extern/_system file if it exists.
  733.   the program will have the file redirected on stdin unless this has
  734.   a `%f' (which waffle doesn't use), in which case the filename of an
  735.   LF-terminated message will be used in place of the `%f'.
  736.  
  737. mail-cmd-line command  a command to deliver mail, or `(standard)'
  738.   to use whatever is in the waffle/extern/_system file if it exists.
  739.   use `(builtin)' to use the builtin low-memory-requirements routine.
  740.   the program will have the file redirected on stdin unless this has
  741.   a `%f' (which waffle doesn't use), in which case the filename of an
  742.   LF-terminated message will be used in place of the `%f'.
  743.  
  744. mail-agent   tries to be nicer with mail.  if there is no new mail,
  745.   the last screen of previously read mail is shown.
  746.  
  747. outgoing-mail folder  stores sent mail in this folder
  748.  
  749. outgoing-news group  stores posted news in this group (default: monitor)
  750.  
  751. highlight-search-hits   when searching, articles found are written
  752.   highlighted, making it easy to see when the first hit has been found
  753.  
  754. colors low,high   low and high must be in range 0-15
  755.  
  756. quote-color integer   tries to write quoted text in this color
  757.  
  758. local-charset filename   defines the local character set for MIME
  759.  
  760. rmail-single   when each address (To and CC) requires its own
  761.   invocation of the mail program
  762.  
  763. idle minutes   after this many idle minutes, rnr will time out
  764.  
  765. swap tag   `no', to prevent swapping when running external
  766.   programs, `disk', to swap to disk only, and `ems', to allow
  767.   swapping to EMS (expanded memory), or disk if EMS is not
  768.   available.  the default is `ems' (or `disk' for low versions
  769.   of DOS), since rnr now no longer works without swapping (unless
  770.   you recompile)
  771.  
  772. article-filename-pattern filepattern   defaults to `*', but used
  773.   to default to `*.*'
  774.  
  775. overview-base-name filename   defaults to `overview', but some might
  776.   have other random things, like `overview.dat' (ick -- overview.nov
  777.   I could see, but there's already too many `.dat' files in the world)
  778.  
  779. from-width integer   width of From: field information on selection
  780.   screens -- defaults to 20, minimum 5
  781.  
  782. size-width integer   width of size field information on selection
  783.   screens -- defaults to 3, minimum 1, maximum 4
  784.  
  785. enter-group-command command   runs this command upon entering any
  786.   group other than a mail pseudo-group.  one argument (the directory)
  787.   is passed
  788.  
  789. dots-on-reset   shows three dots in the top-left corner whenever
  790.   trying to open an article file -- handy when you have 4000 articles
  791.   in one directory and opening each one takes a while
  792.  
  793. view-command command   runs this command, passing the filename,
  794.   when `v' is hit on the browsing screen (default: viewart)
  795.  
  796. extract-command command   runs this command, passing the filename,
  797.   when `x' is hit on the browsing screen (default: munpack)
  798.  
  799. encode-command command   runs this command, passing the filename,
  800.   for use with :mailfile and :postfile (default: encode)
  801.  
  802.   I use ``--encode-command command /c uuencbat'' with a uuencbat.bat
  803.   in my PATH which reads
  804.     uuencode %1 >%2
  805.  
  806.   standard uuencodes will probably need ``uuencode %1 %1 >%2''
  807.  
  808. crlf   uses old news article reading code, which may be noticeably
  809.   faster but doesn't handle LF-only files (which waffle.exe creates!)
  810.   (this defaults to on, and can be changed with `--unset crlf')
  811.  
  812. find-quote-char   looks ahead in articles for a quoting character
  813.   instead of assuming `>' is always the quoting character
  814.  
  815. truncate-id-length length (defaults to 8)   truncates IDs to this many
  816.   characters
  817.  
  818. layout {1,2,normal,squashed}   sets the layout of the selection screen
  819.  
  820. alternate-color integer   alternates between this color and the
  821.   first from --colors on selection screen (by line) and browsing
  822.   screen (by paragraph) -- defaults to same as first from --colors
  823.   (which means it looks exactly like it always used to)
  824.  
  825. date-color integer   displays date in this color on selection screen
  826.   defaults to first --colors or alternate-color as appropriate
  827.  
  828. mail-from address   overrides the netmail: entries in the static
  829.   and custom-static files -- if none, defaults to `%A@%n (%W)'
  830.  
  831. news-from address   overrides the netnews: entries in the static
  832.   and custom-static files -- if none, defaults to --mail-from address
  833.  
  834. reply-to address   overrides the replyto: entries in the static
  835.   and custom-static files -- if none, no Reply-To: headers are generated
  836.  
  837. mail-marker-line string   the line rnr puts in your outgoing mail right
  838.   after the empty line which comes right after the headers to try to make it
  839.   hard to accidentally make your mail into one big mass of illegal headers.
  840.   defaults to `(begin your PRIVATE mail at this line, but no sooner)'
  841.  
  842. news-marker-line string   the line rnr puts in your outgoing news right
  843.   after the empty line which comes right after the headers to try to make it
  844.   hard to accidentally make your news into one big mass of illegal headers.
  845.   defaults to `(begin your PUBLIC post at this line, but no sooner)'
  846.  
  847. debug string  list of things to give detail about to troubleshoot problems
  848.   this is a colon-separated list of areas where rnr will be verbose about
  849.   exactly what it's doing.  the list can be any number of:
  850.     exec     -- display command and arguments when running other programs
  851.     userid   -- show how the userid is found
  852.     slowkill -- indicate what headers are being read from disk when killing
  853.     all      -- all of the above
  854.  
  855.   --set debug=xxx should be the first command-line option to be of fullest use
  856.  
  857. date-format=format  format for current group date (see Date Formats section)
  858.  
  859. mail-date-format format  format for mail date (see Date Formats section)
  860.  
  861. news-date-format format  format for news date (see Date Formats section)
  862.  
  863. regex  enables regular-expression (limited now) capability when searching
  864.   regular expression items supported:
  865.  
  866.   char    role    examples
  867.   ----    ----    -------
  868.    \      escape  `a\\b' => `a\b', `a\|b' => `a|b'
  869.    |      or      `a|b' => `a' or `b'
  870.  
  871. quote-with-space  always quotes with `> ' instead of `>'-or-`> ', even
  872.   if the quoted line begins with `>'
  873.  
  874. find-existing-file-command command  a command to find an existing
  875.   file, or `(builtin)' to just ask.  output must be written to a file
  876.   passed in at the end of the command.
  877.  
  878.   I use `getfname -v -n -e -o'
  879.  
  880. find-file-command command  a command to find a file (existing or not)
  881.   file, or `(builtin)' to just ask.  output must be written to a file
  882.   passed in at the end of the command.
  883.  
  884.   I will use `getfname -v -w -o' when it supports all of those options.
  885.  
  886. indicate-posted-mail-in-body  a posted article which is also CC:'d to
  887.   an address will have a `Comments:' header added to it.  if this option
  888.   is set, it will also have a line in the body of the text, as an ugly
  889.   offering to those who can't read their headers.
  890.  
  891.  
  892. Date Formats
  893. -=----------
  894.  
  895. the default mail-date-format is "www, mmm dd".  the default news-date-format
  896. is "mmm dd".  on entry to any mail pseudogroup, date-format is set to
  897. mail-date-format, and on entry to any other source, to news-date-format.
  898.  
  899. the formatting is fairly standard:
  900.  
  901.   yyyy 1995 four-digit year
  902.   yy   95   two-digit year
  903.   mmm  Jun  three-letter month
  904.   mm   06   two-digit month
  905.   dd   22   two-digit month
  906.   www  Thu  three-letter day of week
  907.   ww   Th   two-letter day of week
  908.   w    R    one-letter day of week (S=Sun, T=Tue, R=Thu, A=Sat)
  909.   s         space
  910.  
  911. all other characters (e.g., "-", "/", ",") are simply copied.
  912.  
  913. Set Configuration Options
  914. -=-----------------------
  915.  
  916. the following names are recognized in addition to the numeric
  917. equivalents:
  918.  
  919.   black
  920.   blue
  921.   green
  922.   cyan
  923.   red
  924.   magenta
  925.   brown
  926.   lightgray lightgrey light-gray light-grey
  927.   darkgray darkgrey dark-gray dark-grey
  928.   lightblue light-blue
  929.   lightgreen light-green
  930.   lightcyan light-cyan
  931.   lightred light-red
  932.   lightmagenta light-magenta
  933.   yellow
  934.   white
  935.  
  936.  
  937.  
  938. Translation of IDs
  939. -=----------------
  940.  
  941. Novell NetWare(TM) allows user ids longer than 8 characters, so rnr
  942. looks in the {waffle-directory}/etc/idtrans file to translate them
  943. if need be.  for instance, if a user's NetWare(TM) login id was
  944. Persephone but her waffle identity was `seph', you would have something
  945. like this in the waffle/etc/idtrans file:
  946.  
  947.   # former-long {whitespace} new-short
  948.   persephone seph
  949.  
  950.  
  951.  
  952. Faking Long IDs
  953. -=-------------
  954.  
  955. (I am using the new-with-waffle 1.66 %_ to indicate the Full Name with
  956. underscores, e.g., Chris_Doe)
  957.  
  958. if you put this in the standard rnr.rc file
  959.   --mail-from   %_@%n (%W)
  960.   --news-from   %_@%n (%W)
  961.   --reply-to    %_@%n (%W)
  962.   --path-userid %_
  963.   --from-userid %_
  964.  
  965. then all mail and news headers will consistently use the full name with
  966. underscores (e.g., Chris_Doe) instead of the login id (e.g., chris).
  967.  
  968. this looks quite snazzy (imho), instead of like a 10-user DOS LAN.
  969.  
  970. if you can't use %_, you can still spell out the names explicitly
  971. (e.g., `--mail-from Chris_Doe@%n (%W)' and put these in each user's
  972. custom static file (netmail:, netnews:, replyto: only) or in their
  973. rnr.rc file in their home directories (if trusted).
  974.  
  975. of course, if you do this you'll need to add aliases in your
  976. /waffle/system/aliases file for mail to be delivered!  this is
  977. probably only useful in a place where everyone uses their real
  978. names (e.g., at a business or other private node).
  979.  
  980.  
  981. Keyboard Mapping
  982. -=--------------
  983.  
  984. as of v1.05, you can do simple keyboard remapping.
  985.  
  986. --map only works from within the rc file.
  987.  
  988. --map {where} {old} {new}   keyboard mapping.  where is one of `browse',
  989.   `select', `both' (for both browse and select) or `main', which affects
  990.   everything in rnr.  old and new are either a normal key (not space,
  991.   backslash, or equals), or a backslash followed by any key, or an equals
  992.   sign followed by the ASCII number for that key.  examples:
  993.  
  994.      ``--map browse b u''     maps `b' (back article) to `u' (up page)
  995.      ``--map main \\ \=''     always maps `\' to `='
  996.      ``--map select =13 *''   allows you to use Enter to select threads
  997.   (this last used to be its own option --make-return-like-asterisk)
  998.  
  999.   as the map is only evaluated once, doing this:
  1000.        --map main x y
  1001.        --map main y x
  1002.   will simply switch the meanings of x and y, not cause an infinite loop
  1003.   or force you to live without one of them altogether.
  1004.  
  1005.   rnr displays ' chars on the screen if you're using the mouse, so
  1006.   if you have the line
  1007.        --map main ' =13
  1008.   in your rc file, you'll have an easy to send an Enter with the mouse.
  1009.   however, as this may make your life difficult if you frequently use
  1010.   :post to send articles that have ' in the Subject: line, it is not
  1011.   mapped this way by default.
  1012.  
  1013.   you could get around this with --map select ' *
  1014.  
  1015.   I personally advise against mapping `Q' to anything other than itself,
  1016.   even though with :quit this is less of a problem than it used to be.
  1017.  
  1018.   keep in mind when mapping that even though the key you map is not
  1019.   currently used by rnr, it may be used by a later version.  while
  1020.   you have the key mapped, you won't be able to access the new functions.
  1021.  
  1022.  
  1023. Phone In Usage (Old)
  1024. -=------------------
  1025.  
  1026. the methods listed in this section are no longer supported or even
  1027. recommended -- please skim it and read the next section instead.
  1028.  
  1029. if you use it for phone-in usage, make SURE you do NOT run it from the
  1030. user's home directory--rnr uses the first rnews.exe and rmail.exe
  1031. in the PATH (with `.' in front like ms-dog does it, argh!), so running
  1032. it from a user's directory would be a SECURITY HOLE.
  1033.  
  1034. I know of no other security holes--if you find one, please inform me.
  1035.  
  1036. - requires a fossil driver
  1037. - if you want to run it from under waffle, you will need to recompile
  1038.   rnr to use much less memory, and set up extern entries.  if you
  1039.   don't care if waffle is physically in memory while rnr is running,
  1040.   you can use the full version, with much larger limits -- see the next
  1041.   section on how to do this.
  1042.  
  1043. on my waffle 1.64, the extern entries are cut quite short (it seems) and
  1044. not passed to command.com--the last few options were always cut off (if
  1045. you had any nontrivial number).  so I have to use an additional batch
  1046. file (in my PATH) which I call rnr-.bat--this is a pain, since it
  1047. was much nicer to have it all in one extern entry.  oh well.
  1048.  
  1049. rnr-.bat: (split for clarity)
  1050.   @echo off
  1051.   w:
  1052.   cd \
  1053.   w:\waffle\bin\rnr0 -p %1 -u %2 -m %3 -o %4
  1054.     -v %5 -e w:/waffle/bin/trived.exe
  1055.  
  1056. rnrt.bat: (split for clarity)--for trusted users
  1057.   @echo off
  1058.   w:
  1059.   cd \
  1060.   w:\waffle\bin\rnr0 -p %1 -u %2 -m %3 -o %4
  1061.     -v %5 -e w:/waffle/bin/trived.exe -t
  1062.  
  1063. for com1:
  1064.  
  1065. waffle/extern/rnr:
  1066.   /command="rnr- 0 %A %O %O %V"
  1067.  
  1068. for com2:
  1069.  
  1070. waffle/extern/rnr:
  1071.   /command="rnr- 1 %A %O -%O %V"
  1072.  
  1073. for trusted users on com1:
  1074.  
  1075. waffle/extern/trustedn:
  1076.   /access=9 /command="rnrt 0 %A %O %O %V"
  1077.  
  1078. (you may want to leave out the -m %3 and -o %4 in the rnrt.bat file,
  1079. but this will lead to problems if their terminal crashes, since waffle
  1080. won't answer the phone again)
  1081.  
  1082. NOTE: all of these batch files first did a `cd' that was guaranteed
  1083. to be OUT OF THE USER'S HOME DIRECTORY.
  1084.  
  1085.  
  1086. Extern Files for Running Full-Memory Version over Modem
  1087. -=-----------------------------------------------------
  1088.  
  1089. this may be a lot more useful.
  1090.  
  1091. I've changed my run.bat like so:
  1092.  
  1093. (new first line)
  1094.  
  1095.     if exist d:\temp\extrnr.bat del d:\temp\extrnr.bat
  1096.     :TOP
  1097.     @ECHO OFF
  1098.     d:\WAFFLE\BIN\WAFFLE %1
  1099.  
  1100. (new label)
  1101.  
  1102.     :inwaffle
  1103.  
  1104. (new if test)
  1105.  
  1106.     if errorlevel == 121 goto nn
  1107.     IF ERRORLEVEL == 80 GOTO END
  1108.     IF ERRORLEVEL == 60 GOTO POLL
  1109.     IF ERRORLEVEL == 40 GOTO UU
  1110.     IF ERRORLEVEL == 20 GOTO CRON
  1111.     GOTO TOP
  1112.  
  1113. (new section--you can lose the echo statements when you're happy it works)
  1114.  
  1115.     :nn
  1116.     echo now at the start of the nn section
  1117.     if not exist d:\temp\extrnr.bat echo no extrnr.bat file...
  1118.     if not exist d:\temp\extrnr.bat goto top
  1119.     echo starting rnr...
  1120.     call d:\temp\extrnr.bat
  1121.     del d:\temp\extrnr.bat
  1122.     call d:\temp\extrnr2.bat
  1123.     if errorlevel 1 goto inwaffle
  1124.     echo now at the end of the nn section--user has logged out
  1125.     goto top
  1126.  
  1127.     :POLL
  1128.  
  1129. (from here on to the end no changes were made)
  1130.  
  1131. I also have this file (callrnr.bat) in waffle/bin
  1132.  
  1133. echo arguments are %1 %2 %3 %4
  1134. f:
  1135. cd \
  1136. if '%2'=='LOCAL' goto local
  1137.  
  1138. :dialin
  1139. rnr -u %1 -p %4 -m %3 --other-options...
  1140. echo waffle online %2 %1>d:\temp\extrnr2.bat
  1141. goto towaffle
  1142.  
  1143. :local
  1144. rnr -u %1 --other-options...
  1145. echo waffle online %1>d:\temp\extrnr2.bat
  1146. goto towaffle
  1147.  
  1148. :towaffle
  1149. echo back to waffle...
  1150.  
  1151. on lines 7 and 11 (rnr ...) you would put your normal options (-r, etc.)
  1152.  
  1153. I have a similar calltrnr (trusted rnr) which has the -t option every
  1154. time it calls rnr.
  1155.  
  1156. I also have these file (nn, tnn, nn2, and nn3) in waffle/extern
  1157.  
  1158. nn:
  1159.  
  1160. /shell /command="echo callrnr %A %b %O %d>d:\temp\extrnr.bat" /then="nn2"
  1161.  
  1162. tnn:  (wrapped)
  1163.  
  1164. /access=9 /shell /command="echo caltrnr %A %b %O %d>f:\temp\extrnr.bat"
  1165.   /then="nn2"
  1166.  
  1167. nn2:
  1168.  
  1169. /waffle /command="echo please wait a bit after 'logout'..." /then="nn3"
  1170.  
  1171. nn3:
  1172.  
  1173. /exit=121
  1174.  
  1175. this gives access to the large-memory version of rnr--which is a
  1176. _lot_ more useful.
  1177.  
  1178. the trickery with checking if extrnr.bat exists is to prevent some user
  1179. from typing just `nn3' and getting away with extra time, ability to send
  1180. mail from someone else's id (due to an old .bat file existing), etc.  if
  1181. 1.64 can do this all in one line, it'd be more elegant (since there would
  1182. be less mucking around to stay secure), and less messy, but my playing
  1183. around didn't get it to do that.  perhaps 1.65 does it easily.  from posts
  1184. I've seen, it doesn't appear that either version does.
  1185.  
  1186.  
  1187. Using rnr without Waffle
  1188. -=----------------------
  1189.  
  1190. rnr is currently designed to fit into an existing waffle, uupc,
  1191. or uufree setup.  however, you do not have to install a full, working
  1192. system of any of these types to read news, or process mail.
  1193.  
  1194. - set an environment variable WAFFLE to the name of a data file
  1195.     eg. set WAFFLE=w:\system\static
  1196.   if this environment variable is not there, it will use `./static'
  1197.  
  1198. - have in this the following lines (with REAL data, of course, if you
  1199.   intend to post or send mail.  if not, most any old bits will do)
  1200.     uucpname: foo
  1201.     node: foo.org
  1202.     smarthost: bar.org
  1203.     organ: The House of Foo, Barville, Country
  1204.     temporary: w:/tmp
  1205.     timezone: -0600
  1206.     forums: usenet
  1207.     user: w:/user
  1208.     waffle: w:/
  1209.  
  1210. - the `waffle' entry is the first portion of the WAFFLE environment
  1211.   variable, dropping off the `system\static' part
  1212.  
  1213. - set environment variables NET_NAME or USER or LOGNAME or USERNAME,
  1214.   FULLNAME, EDITOR, and SPELL as indicated in earlier sections--or pass
  1215.   this information in on the command-line in your batch file, or in one
  1216.   of the rc files.
  1217.  
  1218. - create the file w:\system\usenet (change `static' from the WAFFLE
  1219.   environment variable to the word in the `forums:' static entry).
  1220.   line 1 or so should be something like
  1221.     DEFAULT /dir=w:\news
  1222.   (which would store the 15th news article for, say, comp.os.msdos.mail-news
  1223.   in something like `w:\news\comp\os\msdos\mail-new\15').  list the
  1224.   newsgroups available one per line.  the DEFAULT can be overridden
  1225.   with a specific directory name eg.
  1226.     comp.lang.c++ /dir=w:\news\comp\lang\cpplus
  1227.     comp.unix.aux /dir=w:\news\comp\unix\ox
  1228.   (both c++ and aux are not valid msdos filenames, usually)
  1229.  
  1230. - create a directory under the `user:' static entry with the same name
  1231.   as NET_NAME or USER or LOGNAME or USERNAME -- e.g., w:/user/chris
  1232.  
  1233. - in this user directory create a file `join' which lists the newsgroups
  1234.   you wish to read one per line, followed by a space and a `0' eg.
  1235.     comp.lang.c++ 0
  1236.  
  1237. - read news!
  1238.      
  1239.  
  1240. Using rnr as a Mail User Agent
  1241. -=----------------------------
  1242.  
  1243. [
  1244.   NOTE:  do NOT deliver mail to a mail-group with an alias of the form
  1245.  
  1246.     chris  |post private.mail.chris
  1247.  
  1248.   as a lot of mail nowadays has a Newsgroups: header, and you would
  1249.   end up posting your private mail to the world!
  1250. ]
  1251.  
  1252. (NOTE:  I did not think of this idea -- thanks to Jay Troy)
  1253.  
  1254. I use rnr as a mail agent all the time.  I just copy new mail files
  1255. from my user directory to a newsgroup that isn't in my main
  1256. waffle/system/usenet file (it's in waffle/system/mail, and I run rnr
  1257. with the --forum-set-list option to access it).  since waf165 broke
  1258. the useful mail format with an old space-saving hack, you may need to
  1259. run EXPLODE2 (available from ftp.halcyon.com) to unpack your mail into
  1260. individual files in a directory which you treat as a newsgroup.  you
  1261. may also want to check makenews (mknews20.zip on simtel).
  1262.  
  1263. my waffle/system/mail file reads as so:
  1264.  
  1265.     DEFAULT /dir=d:\news
  1266.  
  1267.     private.mail
  1268.  
  1269. thus, private.mail.{userid} will be in d:\news\private\mail\{userid}.  you
  1270. would use your own uucp name instead of private -- you can use anything
  1271. you want, instead of your uucp name, as long as you use the --mail-prefix
  1272. option.
  1273.  
  1274. rnr treats folders as subgroups of your --mail-prefix group.
  1275. the main group is referred to as `=', and a folder of `foo' is
  1276. referred to as `=foo'.  create a folder by using `M'ove or `C'opy
  1277. when browsing in a mail group.  this will automatically add it to
  1278. your join file alphabetically in the list of your mail groups.  then
  1279. you can use `G'oto to read it.
  1280.  
  1281. folders can be nested -- a folder of `=foo.bar.baz' will be
  1282. associated with a directory of foo\bar\baz under your --mail-prefix
  1283. group's directory.  thus, folders cannot have the `/' or `\' or
  1284. `:' or `..' in them anywhere.
  1285.  
  1286. be careful with using `M'ove--to avoid the time-consuming (and
  1287. usually unnecessary) process of renumbering the articles in the
  1288. `from' group, it is possible to read a mail group, update the
  1289. join file, and reread the group, moving every article out, and
  1290. entering an inconsistent state.  renumbering wouldn't help this
  1291. very much, anyway.  what I am thinking of doing is checking the
  1292. group when you leave (if any `M'oving was done) and making sure
  1293. that the join file number does not point to an article number
  1294. higher than those currently in the group.  for this version, you
  1295. may just want to avoid using `M' unless you're careful not to
  1296. move your highest-numbered article.
  1297.  
  1298. this restriction should be removed eventually.
  1299.  
  1300.  
  1301. Colon Commands
  1302. -=------------
  1303.  
  1304. s=available on selection screen
  1305. b=available on browsing screen
  1306.  
  1307. sb :help     - help (either browsing or selecting)
  1308. sb :postfile - post a new article, including an encoded file
  1309. sb :post     - post a new article in the current group
  1310. sb :mailfile - send mail, including an encoded file
  1311. sb :mail     - send mail
  1312. sb :quit     - quit rnr
  1313. sb :set      - same as --set
  1314. sb :unset    - same as --unset
  1315. sb :version  - show the version
  1316. sb :show     - show various things rnr needs to know about
  1317.                :show aliases - show aliases
  1318.                :show aliases string - show aliases which contain `string'
  1319.  
  1320. s  :next     - same as hitting `N'
  1321.  
  1322.  b :follow   - post, setting followups to another group or list of groups
  1323.  b :cancel   - cancel an article world-wide
  1324.  b :next     - same as hitting `n' -- halfway compatible with Unix `more'
  1325.  
  1326.  
  1327. Using Other Commands to Process Outgoing Messages
  1328. -=-----------------------------------------------
  1329.  
  1330. with the new set news-cmd-line and set mail-cmd-line, you have full control
  1331. over what programs get run to process mail and news that you want to
  1332. send out.
  1333.  
  1334. when I used waffle, I used
  1335.   set news-cmd-line rnews
  1336.   set mail-cmd-line (builtin)
  1337. (the defaults) here.  I could also have used
  1338.   set news-cmd-line (standard)
  1339. to use the command listed in my waffle/extern/_system file.
  1340.  
  1341. unfortunately, the rmail.exe supplied with waf164 is far too large to
  1342. work under rnr unless you use swapping, and the (builtin) mail
  1343. processor does not handle mail well unless it goes out to the
  1344. smarthost -- which is not good for local users, or mail to a
  1345. non-smarthost feed.  to handle this well without swapping, you may want
  1346. to investigate mailq, which takes much less memory when memory is scarce
  1347. and only uses it later, when there's lots.
  1348.  
  1349. now, with uufree's rmail (and swapping), I use
  1350.   set news-cmd-line rnews %f
  1351.   set mail-cmd-line rmail %i %f
  1352.  
  1353. at time of writing, mailq is at
  1354. ftp.halcyon.com:/pub/waffle/mail/mailq101.zip.
  1355.  
  1356. if your rmail or rnews is passed a filename, use a `%f' in its place
  1357. in the command line. the `%f' is not used by waffle, and rnr will
  1358. replace it with the filename.  if `%f' is not used, rnr will run
  1359. the program with a `< filename' at the end -- redirecting stdin for it.
  1360. this takes more memory.
  1361.  
  1362. for rmail, use `%i' as the destination address.
  1363.  
  1364. the commands must be able to handle LF-terminated files, as
  1365. that is what will be given to them.
  1366.  
  1367. suggested values:
  1368.  
  1369.   Waffle without mailq, all mail goes to smarthost:
  1370.     set news-cmd-line (standard)
  1371.     set mail-cmd-line (builtin)
  1372.  
  1373.   Waffle with mailq, or with --swap enabled:
  1374.     set news-cmd-line (standard)
  1375.     set mail-cmd-line (standard)
  1376.  
  1377.   UUPC:
  1378.     set news-cmd-line inews
  1379.     set mail-cmd-line rmail -t -F %f
  1380.     set no-mail-from
  1381.     set no-mail-headers :Received:Message-ID:
  1382.     set no-news-headers :Path:Message-ID:
  1383.  
  1384.   uufree:
  1385.     set news-cmd-line rnews %f
  1386.     set mail-cmd-line rmail %i %f
  1387.  
  1388.  
  1389. Signatures
  1390. -=--------
  1391.  
  1392. rnr will automatically append the signature file (either `sig', for
  1393. postings, or `mailsig').  if the first line of the signature file is not
  1394. the standard signature delimiter, two dashes and one space on a line by
  1395. themselves ( ``-- '' ), then rnr will add one in for you.  so, for
  1396. best compatibility for both rnr and waffle, I begin my signatures
  1397. with this line--waffle will then add it in (because it's part of my
  1398. signature) and rnr will not duplicate it, which is as close as I can
  1399. get to having identical signatures out of both without modifying waffle.
  1400. of course, if your signature file begins with ``--'' or ``--  '' or
  1401. ``---'' or some other variant, you will not likely be pleased with the
  1402. result.
  1403.  
  1404. no one using rnr should _ever_ have the infamous `double sig'!  yay!
  1405. (unless maybe when using `m'ail, but only if they don't even check.)
  1406.  
  1407.  
  1408. Swapping
  1409. -=------
  1410.  
  1411. Changes to exec.pas, from simtel pgmutil/exec33b.zip
  1412.   removed ^Z at end
  1413.   removed `or' in const section (see {--version-4-0--})
  1414.   realized it just wasn't going to work will with tp4 and gave up...
  1415.  
  1416. Changes to exec.pas, from simtel pgmutil/exec23b.zip are marked in the
  1417. source--grep for `alpha3'.
  1418.  
  1419.   
  1420. Troubleshooting
  1421. -=-------------
  1422.  
  1423. - make sure you haven't selected --quiet anywhere--then you'll see the
  1424.   full text of what data rnr is thinking it should use
  1425.  
  1426. - (dialin) try the --shadow option
  1427.  
  1428. - (dialin) see if trived will work--it's a simpler program that uses
  1429.   very similar fossil i/o routines
  1430.  
  1431. - (dialin) the console keyboard can also be used as of v0.99, so see if
  1432.   hitting `Q' on the local keyboard helps
  1433.  
  1434. - if you can extract 10 or 20 lines from what you think might be the
  1435.   relevant configuration files and send them along with a description
  1436.   of a problem, I might be able to duplicate the problem (by setting
  1437.   my system up the same way in that regard temporarily) and fix it all
  1438.   in one go.  not every problem will lend itself to this approach
  1439.   immediately, and the really relevant files might not be at all obvious,
  1440.   but if you can find a few such lines, it may be a lot easier for me,
  1441.   and if I can reply with a solution in the first piece of mail instead
  1442.   in the third, it'd be easier for you, too.  in the case of uufree,
  1443.   the UUFREE.DF file should have almost everything.
  1444.  
  1445.   make sure you NEVER send me a file with a password still in it.
  1446.  
  1447. - please make sure you've read the docs, the FAQ sheet, the todo sheet,
  1448.   and the shortcomings section at the top of rnr.pas before you
  1449.   send me mail with a problem.  thanks.  it is almost always very
  1450.   helpful to me to know which version you're running, as I can tell
  1451.   if what you're talking about was fixed, changed, added, or what-have-you
  1452.   in the latest available version.
  1453.  
  1454.   if you send a run-time error, please also send the version of rnr,
  1455.   otherwise I won't be able to find where it points.
  1456.  
  1457. - if you post a message looking for an answer, mail me at the same time
  1458.   so that you can be sure I see it.  with rnr you can simply add a
  1459.   `CC: Russell_Schulz@locutus.ofB.ORG' header anywhere in
  1460.   among the generated headers, and it will also send it to me.
  1461.  
  1462.  
  1463. Redeeming Features
  1464. -=----------------
  1465.  
  1466. - compatible with waffle--no separate database or maintenance required,
  1467.   and at any time you can switch back and forth between waffle's internal
  1468.   newsreader(s), other waffle-compatible newsreader(s), and rnr
  1469.  
  1470. - moderately compatible with uupc (more so all the time)
  1471.  
  1472. - compatible with uufree
  1473.  
  1474. - uses a subset of nn's keystrokes for efficient newsreader (on console
  1475.   or over modem) which is still (imho) easy to use
  1476.  
  1477. - hit `k' while reading to kill that subject or author, option of either
  1478.   in that group or in all groups
  1479.  
  1480. - hit `K' while reading to antikill--using the same criteria
  1481.  
  1482. - automatic filtering of crossposts--any article which is crossposted
  1483.   will only be shown if the group you're reading is the first one in your
  1484.   join file to which it was posted (i.e., you only read it once, the way
  1485.   it was meant to be) -- unless it's in a `special' group, such as a
  1486.   news.announce.* group
  1487.  
  1488. - can be used over a phone line
  1489.  
  1490. - will time out eventually if required
  1491.  
  1492. - can call external spell checker for mail and postings
  1493.  
  1494. - slightly mousified
  1495.